+%#****##*++======+*##################%#############%######%%##%#%%#%
#%##***+++**++=======*###%############################%####%########%
%%%*+***++=++++*+====-=+##%#########################################%
%%#*+++%#**+++==++++=-===*#######%##################################%
%%#*+++#%%##**++=++++=++++*#########################################%
%##*+++*%#######**+++=+*#%%##########################%##############%
%#*++*=*#%%%############%%%#%################%#####%#%############%#%
##**+*=**%%############%%%##################%#######%###############%
#*##**==+*%#########%##%#######################%####################%
*#######**%##%################################%#####################%
+++++*****#%%%######################################################%
%%####***++*%#######################################################%
%@@@@@@@@@@%########################################################%
++**#####%%%########################################################%
**********#%##############**#########################################
*******######****++-+**+=:.::==+************************************#
++++++++++=++++==-: =*+=--:.:====+++++========++++==+=====+===+==+++*
==----------===:::::--==--=..:::+*+=----------=-+===:.-=-=+++*=---:.=
++++========++=-:-:=-==--:-----::-=**+++++=-:-=+=:::::=--==--===---:-
##*****=::-=+=----:+---=*=====-::+*+*#+*******==::-==--:--+=-+=-::--+
++*##*+-.=++-=----=+---=*-:----=:-==+==+**##*+*=::-====+*=:---:**===+
-:-++++-.---=------+*+=*=--------=========+++=---=:-----*+-----*+-:-=
###*****+*+++*+****#%#***#++++**++***************+++**++*%*###*%*++**